JavaScript effektiv by David Herman

JavaScript effektiv by David Herman

Autor:David Herman
Die sprache: deu
Format: epub
Herausgeber: dpunkt.verlag
veröffentlicht: 2014-08-15T00:00:00+00:00


Thema 36 Speichern Sie den Instanzstatus nur in Instanzobjekten

Für eine korrekte Implementierung von Objekten ist es wichtig, sich genau über die 1:n-Beziehung zwischen einem Prototypobjekt und seinen Instanzen im Klaren zu sein. Eine mögliche Fehlerquelle besteht darin, versehentlich Instanzdaten im Prototyp zu speichern. Nehmen wir an, eine Klasse, die eine baumartige Datenstruktur implementiert, enthält ein Array der Kindobjekte für jeden Knoten. Wenn Sie dieses Array im Prototypobjekt platzieren, funktioniert die Implementierung nicht mehr:

function Tree(x) {

this.value = x;

}

Tree.prototype = {

children: [], // Dies sollte der Instanzstatus sein!

addChild: function(x) {

this.children.push(x);

}

};

Wenn wir nun versuchen, einen Baum mit dieser Klasse zu konstruieren, geschieht Folgendes:

var left = new Tree(2);

left.addChild(1);

left.addChild(3);

var right = new Tree(6);

right.addChild(5);

right.addChild(7);



Download



Haftungsausschluss:
Diese Site speichert keine Dateien auf ihrem Server. Wir indizieren und verlinken nur                                                  Inhalte von anderen Websites zur Verfügung gestellt. Wenden Sie sich an die Inhaltsanbieter, um etwaige urheberrechtlich geschützte Inhalte zu entfernen, und senden Sie uns eine E-Mail. Wir werden die entsprechenden Links oder Inhalte umgehend entfernen.